This relates to communication networks, and more particularly, to communications networks having network switches that are controlled by a controller.
Packet-based networks such as the internet and local data networks that are connected to the internet include network switches. Network switches are used in forwarding packets from packet sources to packet destinations. The packets may be sometimes referred to as frames.
It can be difficult or impossible to control the switches of one vendor using the equipment of another vendor. This is because the switch equipment of one vendor may use a different operating system and set of control procedures than the switch equipment of another vendor. To address the challenges associated with controlling different types of switch platforms, cross-platform protocols have been developed. These protocols allow centralized control of otherwise incompatible switches.
Cross-platform controller clients can be included on the switches in a network. The controller clients are able to communicate with a corresponding controller server over network paths. Because the controller clients can be implemented on a variety of switch hardware, it is possible for a single controller to control switch equipment that might otherwise be incompatible.
Conventional switches in a network (e.g., switches that do not have controller clients and do not communicate with the controller) communicate with other switches to make localized decisions on how to forward network traffic between end hosts. In some scenarios, the switches converge on a tree structure in which only one forwarding path is used for each pair of nodes in the tree. However, use of tree structures can lead to inefficient use of available network resources, as the network links and devices of the tree structures are burdened with a disproportionate amount of network traffic.
In some scenarios, a network forwarding device such as a router can partition network traffic that is forwarded by the network forwarding device among multiple ports of the network forwarding device. However, such localized decisions may lead to suboptimal packet forwarding by the network. For example, individual network forwarding devices can partition network traffic independently, which can lead to network packets that arrive out-of-order at destinations (e.g., due to differences in latency between network paths).